Multiprocessor systems comprise increasingly complex applications requiring increasing computation performance levels. These increasing performance levels are reflected on the one hand in increasingly high operating frequencies and in an increase in the number of processors as well as associated circuits, such as memory circuits. These two types of increase are the reason behind an increasingly significant electrical consumption. This consumption is directly linked to the operating frequency of the processors, the number of processors and the power supply voltage.
In addition to the increase in energy consumption per se, there are at least two other associated drawbacks: on the one hand, the increased heat dissipation which affects the packaging of the hardware, possibly resulting in a redimensioning thereof, and on the other hand a reduction in hardware energy autonomy time.
The known solutions dealing with the issue of energy management in digital systems are focused mainly on the specification of the task scheduling module, also called scheduler, as well as on the energy management strategy (“scheduling algorithm”) which has to be applied. In a real-time context, the software architectures are often dimensioned for the worst case according to the applications supported and the time constraints to be observed. The dimensioning phase notably characterizes each task by a worst case execution time, called WCET. Once the WCET's of the different tasks have been computed, the processors with which the WCET's can be observed are defined.
Algorithms and heuristics, relying for example on mechanisms called DVFS (Dynamic Voltage and Frequency Scaling) or low-consumption modes of the components, are proposed. The solutions of DVFS type notably exploit the time excesses relative the WCET's to lower the frequency and the voltage of certain resources. Other algorithms are based on the so-called DPM (Dynamic Power Management) techniques that notably exploit periods of inactivity.
The information necessary to the energy management module, a function performed by the scheduler, are described in the prior solutions. Such information notably includes the time characteristics of the application, the processor load or even the states of the processors. However, the manner in which such information is recovered is not specified. Now, in the implementation phase on a target, the issue of the interfaces and of the communication means arises.
This aspect is all the more important if the aim is to propose a solution that can be operated easily on a number of hardware platforms with different operating systems (OS). In practice, in this case, it is necessary to define interfaces and a communication means which is as generic as possible, that is to say, in other words, that can be adapted to a maximum of platforms.
Currently, the energy management is more often than not taken into account at the end of the product development cycle. It is therefore important for the mechanisms proposed by this energy management to have a minimum impact on the way in which the applications are implemented. To deal with this point, the prior art does not propose any solution. In particular, in the operating systems, it is not yet standardized for the applications to communicate, during their execution, time information to the engine, or execution library, also called “runtime”, necessary to an adequate energy management.
One of the difficulties in the use and implementation of energy management algorithms lies in the provision for the “runtime”, during the execution of the applications, of relevant application and hardware component information, notably time and processor states information. Based on such information, many heuristics and energy management strategies can then be actually deployed. Thus, what may be considered in the prior art to be a directly useable input is therefore not however an immediate concept to be implemented. In particular, the measurement of the WCET is not information that is easy to obtain. The communication between the application and the real-time execution in low-consumption mode (by activating the energy management techniques) must then have a minimum impact on the original implementation of the application to avoid requiring a complete restructuring of the application code. As indicated previously, improving the energy consumption is an issue which is addressed at the end of product development and thus generally entails working with the existing structures.
The prior art therefore presents notably the following drawbacks:                a lack of details on the communication means, in particular the interfaces, between the application and the energy management module, the scheduler, between the hardware platform and the energy management module and between the operating system and the energy management module;        no appropriate processing of the impact of the energy management on the application development;        a lack of details for the solutions to be able to be implemented directly in an operating system;        no information for the solutions to be able to implemented easily on different hardware targets and operating systems (portable solution);        no information on how to obtain an estimation of the WCET.        